package com.frame.domain;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.ExceptionHandler;

import java.util.Date;

@Data
@ColumnWidth(20)
@HeadRowHeight(20)
@ContentRowHeight(15)
@ExcelIgnoreUnannotated
@NoArgsConstructor
@AllArgsConstructor
public class Logistics {

    /**
     * 物流运输记录的唯一标识符
     */
    @ExcelProperty(value = {"物流运输日志","物流编号"})
    private Integer transportId;

    /**
     *运输的产品ID
     */
    @ExcelProperty(value = {"物流运输日志","运输的产品编号"})
    private Integer cropId;

    /**
     * 加工表id
     */
    private Integer processId;

    /**
     * 仓库id
     */
    private Integer cargoId;

    /**
     * 零售商id
     */
    private Integer retailId;

    /**
     *运输开始日期和时间
     */
    @ExcelProperty(value = {"物流运输日志","运输开始日期和时间"})
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String transportDate;

    /**
     *预计送达日期和时间
     */
    @ExcelProperty(value = {"物流运输日志","预计送达日期和时间"})
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String expectedDeliveryDate;

    /**
     *实际送达日期和时间
     */
    @ExcelProperty(value = {"物流运输日志","实际送达日期和时间"})
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Integer actualDeliveryDate;

    /**
     *运输起始地点（如原材料仓库或加工厂）
     */
    @ExcelProperty(value = {"物流运输日志","运输起始地点"})
    private String fromLocation;

    /**
     *运输目的地点（如加工厂、零售店或顾客地址）
     */
    @ExcelProperty(value = {"物流运输日志","运输目的地点"})
    private String toLocation;

    /**
     * 发货人ID
     */
    @ExcelProperty(value = {"物流运输日志","发货人编号"})
    private Integer senderId;

    /**
     *运输方式（如陆运、空运、海运等）
     */
    @ExcelProperty(value = {"物流运输日志","运输方式"})
    private String transportMethod;

    /**
     *承运人或运输公司ID
     */
    private Integer carrierId;

    /**
     *运输的产品数量
     */
    @ExcelProperty(value = {"物流运输日志","运输的产品数量"})
    private String trackingNumber;

    /**
     *运输跟踪号码
     */
    private Integer quantityShipped;

    /**
     *运输数量(单位，如千克、吨等)
     */
    private String unit;

    /**
     *运输状态（如在途、已送达、延迟等）
     */
    @ExcelProperty(value = {"物流运输日志","运输状态"})
    private String status;

    /**
     *运输过程中的特别说明或备注
     */
    @ExcelProperty(value = {"物流运输日志","说明或备注"})
    private String notes;

    /**
     *条码
     */
    private String barCode;


    /**
     * 是否签收
     */
    private Integer qstatus;


    /**
     * 冗余字段
     */
    //农产品名称(货物名称)
    private String productName;//商品名称
    private String materialFactoryName;//原材料仓库名称
    private String deliveryMan;//送货员
    private String picture;//货物图片
    private Integer factoryStashId;//工厂仓库
    private String productCode;


}
